package com.kmxd.ams.client.archive.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import java.io.Serializable;
import javax.validation.constraints.Size;
import lombok.Data;

/**
 * 门类|档案库配置主表
 *
 * @author ZuoLG
 * @since 2022-07-15
 */
@Schema(description = "门类|档案库配置主表对象")
@Data
public class ArchiveTypeEditDTO implements Serializable {

  private static final long serialVersionUID = 1L;

  /** 主键ID */
  @Schema(description = "主键ID")
  private Long id;

  /** 全宗ID */
  @Schema(description = "全宗ID")
  private Long fondsId;

  /** 名称 当前全宗下不可重复。由于此表是逻辑删除，因此需要排除掉已删除的记录的名字进行查重 */
  @Schema(description = "名称 当前全宗下不可重复。由于此表是逻辑删除，因此需要排除掉已删除的记录的名字进行查重")
  @Size(max = 100, message = "名称")
  private String name;

  /**
   * 元数据模板类型
   * document文书档案、account会计档案、technical科技档案、img照片档案、radio音频档案、video视频档案、entity实物档案、other其他档案、material资料
   * 这里是定义“业务附加元数据”
   */
  @Schema(
      description =
          "元数据模板类型 document文书档案、account会计档案、technical科技档案、img照片档案、radio音频档案、video视频档案、entity实物档案、other其他档案、material资料 这里是定义“业务附加元数据”")
  @Size(max = 100, message = "元数据模板类型")
  private String model;

  /** 管理模式 前端收集库、档案库模板调用 */
  @Schema(description = "管理模式 前端收集库、档案库模板调用")
  @Size(max = 100, message = "管理模式")
  private String manageModel;

  /** 档案索引编号如f1_35_box中的35 同步自php */
  @Schema(description = "档案索引编号如f1_35_box中的35 同步自php")
  private Integer archIndex;

  /** 档案类型作为分类统计、数据展示控制的主要依据 数据来自sys_dis_detail */
  @Schema(description = "档案类型作为分类统计、数据展示控制的主要依据 数据来自sys_dis_detail")
  @Size(max = 100, message = "档案类型作为分类统计、数据展示控制的主要依据 数据来自sys_dis_detail长度不能超过100个字符")
  private String category;

  /** 年报统计配置 同步自php，暂不清楚用在哪里 */
  @Schema(description = "年报统计配置 同步自php，暂不清楚用在哪里")
  private int yearstatis;

  /** 归档前是否进行四性检测 */
  @Schema(description = "归档前是否进行四性检测")
  private Integer attributeTest;

  /** 实体-启用电子档号章 0停用，1启用 */
  @Schema(description = "实体-启用电子档号章 0停用，1启用")
  private int enumEnabled;

  /** 实体-默认规格 存具体数值：10、20、30、40、50、60 */
  @Schema(description = "实体-默认规格 存具体数值：10、20、30、40、50、60")
  private int volBoxDefaultSize;

  /** 保管期限代码表，数据来自sys_dict_item.code */
  @Schema(description = "保管期限代码表，数据来自sys_dict_item.code")
  @Size(max = 100, message = "保管期限代码表，数据来自sys_dict_item.code长度不能超过100个字符")
  private String rpCodeId;

  /** 密级代码表，数据来自sys_dict_item.code */
  @Schema(description = "密级代码表，数据来自sys_dict_item.code")
  @Size(max = 100, message = "密级代码表，数据来自sys_dict_item.code长度不能超过100个字符")
  private String secretCodeId;

  /** 水印配置id */
  @Schema(description = "水印配置id")
  private Long watermarkId;

  /** 扩展信息 */
  @Schema(description = "扩展信息")
  private String allowExtension;

  /** 排序 */
  @Schema(description = "排序")
  private Integer sort;

  /** 允许统计 */
  @Schema(description = "允许统计")
  private Integer allowStat;
}
